ปรัชญาของ โครงสร้างธรรมชาติ กล่าวว่า ชนิดที่ผู้ใช้กำหนดควรดำเนินการเหมือน ผู้มีสิทธิ์เท่าเทียม. โดยการนำเอา การโอเวอร์โหลดปฏิบัติการ, เราอนุญาตให้คลาสใช้สัญลักษณ์มาตรฐาน (เช่น + หรือ ==), ซึ่งช่วยลดภาระทางความคิด และทำให้เป็นไปตาม หลักการน้อยที่สุดของการประหลาดใจ.
1. โครงสร้างและกระบวนการส่งมอบ
ปฏิบัติการคือฟังก์ชันที่มีชื่อพิเศษ: คำสำคัญ operator ต่อจากสัญลักษณ์ ปฏิบัติการแบบ ปฏิบัติการแบบเอกลักษณ์ มีอาร์กิวเมนต์เดียว ในขณะที่ปฏิบัติการแบบ ปฏิบัติการแบบไบนารี มีสองอาร์กิวเมนต์ เมื่อกำหนดเป็น ฟังก์ชันสมาชิก, อาร์กิวเมนต์ด้านซ้ายจะถูกผูกกับ ตัวชี้นี้โดยนัย (a.operator+(b)) เป็นแบบ ไม่ใช่สมาชิก, ทั้งสองอาร์กิวเมนต์ระบุอย่างชัดเจน (operator+(a, b))
2. ข้อจำกัดและจริยธรรม
C++ ป้องกันการ 'ทำลายภาษา': คุณไม่สามารถสร้างสัญลักษณ์ใหม่ (เช่น **) หรือเปลี่ยนแปลงการดำเนินการสำหรับชนิดที่มีอยู่แล้ว (เช่น int + int). ลำดับความสำคัญและการจัดลำดับเป็น คงที่. หลักการออกแบบ: คลาสที่กำหนด == รวมเข้ากับอัลกอริธึมไลบรารีได้อย่างราบรื่น เช่น std::find.